<?php

/**
 * @author Marc André Audet <root@manhim.net>
 * @copyright Copyright(c) 2009-2010 Marc André Audet
 * @license http://www.gnu.org/licenses/gpl.txt The GNU General Public License version 3
 *
 * $Rev: 148 $
 *
 *   GStats++ http://code.google.com/gstatspp/
 *
 *   Copyright (C) 2009-2010 Marc André Audet
 *
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

define('CHECK_OK', 0x01);
define('CHECK_WARNING', 0x02);
define('CHECK_ERROR', 0x03);

abstract class GStatsppPlugins
{
    private $Name = '';
    private $Version = '';
    private $Author = '';
	private $Maintainers = array();
    private $Link = '';
    private $Description = "";
	private $UpdateLink = "";
	
	private $_Data = array();

	public function __construct($data = array())
	{
        $this->_Data = &$data;
    }


  	public function CheckInstall()
	{
		return false;
	}

	public function Install()
	{
		return false;
	}

	public function CheckUpdate()
	{
		return false;
	}

	public function Update()
	{
		return false;
	}

	public function Remove()
	{
		return false;
	}

	public function RunTranslator()
	{
		return false;
	}

	public function RunCommunicator()
	{
		return false;
	}

	public function RunInterface()
	{
		return false;
	}

	public function AjaxCall($call, $data = array())
	{
		return false;
	}

	public function Language($name, $locale)
	{
		return false;
	}

	public function GetMenu()
	{
		return false;
	}

    function __get($member)
    {
        switch ($member)
		{
			case 'Name': case 'Version': case 'Author': case 'Maintainers': case 'Link': case 'Description':
				return $this->$$member;
				break;
			default:
				return null;
		}
    }

    function __set($member, $value)
    {
        return;
    }

}

?>
